home *** CD-ROM | disk | FTP | other *** search
- /*
- $VER: PGP2TRXGUI.rexx V1.1 (9.11.95) © by Nils Görs
-
- Dies ist wieder einer der vielen Gui's für PGP. Aber dies ist der
- erste, der in ARexx geschrieben wurde ;-)
-
- */
-
- /* Wo befindet sich PGP ?? */
- PGP.exe = "PGP"
-
- /* Wie ist der Name der PGP-Pfad-Variable ?? */
- PGPVariable = "PGPPATH"
-
- /* In welches File sollen temporäre Daten geschrieben werden? */
- PGPOut = "t:qwer.pgp"
-
- /* Informationen über das Ausgabefenster */
- LeftBorder = 10 /*Abstand linker Rand */
- TopBorder = 300 /*Abstand vom oberen Rand*/
- OutPutWidth = 640 /*Breite des Fensters */
- OutPutHeight = 150 /*Höhe des Fensters */
-
- /************************************************
- * Please don't change anything under this line *
- ************************************************/
- OPTIONS RESULTS
- NL = '0a'x
-
- PARSE ARG PubScreen
-
- IF PubScreen == "?" THEN DO
- OPTIONS PROMPT "PUBSCREEN/K: "
- PARSE PULL PubScreen
- END
-
- /* öffne alle nötigen libraries - wenn nicht möglich Programmende */
-
- IF ~SHOW('LIBRARIES','rexxreqtools.library') THEN
- IF ~ADDLIB('rexxreqtools.library',0,-30,0) THEN
- EXIT
-
- IF ~SHOW('LIBRARIES','tritonrexx.library') THEN DO
- IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN DO
- SAY 'Kann die <tritonrexx.library> nicht öffnen!'
- EXIT(10)
- END
- END
-
- IF ~SHOW('LIBRARIES','rexxtricks.library') THEN DO
- IF ~ADDLIB('rexxtricks.library',0,-30,0) THEN DO
- SAY 'Kann die <rexxtricks.library> nicht öffnen!'
- EXIT(10)
- END
- END
-
- IF ~SHOW('LIBRARIES','rexxsupport.library') THEN DO
- IF ~ADDLIB('rexxsupport.library',0,-30,0) THEN DO
- SAY 'Kann die <rexxsupport.library> nicht öffnen!'
- EXIT(10)
- END
- END
-
-
- IF PubScreen == "" THEN
- PubScreen = RXTR_GETDEFAULTPUBSCREEN()
-
- ScreenOutPut = 'CON:'LeftBorder'/'TopBorder'/'OutPutWidth'/'OutPutHeight'/Closegadget zum Beenden/SCREEN' PubScreen'/AUTO/CLOSE'
-
- /**********************************
- *** Standard-Output umlenken ;) ***
- ***********************************/
- CALL CLOSE('STDOUT')
- IF ~OPEN('STDOUT',ScreenOutPut,'W') THEN
- EXIT(10)
-
- CALL CLOSE('STDIN')
- CALL OPEN('STDIN','*','W')
- CALL PRAGMA('*','STDOUT')
- CALL PRAGMA('*','STDIN')
-
- /*************************
- *** PGP-Pfad ermitteln ***
- **************************/
- PGPPath=RXTR_GETENV(PgpVariable)
- IF PGPPath == "" THEN DO
- Say "Sie müssen eine Varible mit dem PGP-Pfad anlegen!"
- EXIT(5)
- END
- Laenge=WORDLENGTH(PgpPath,1)
- SELECT
- WHEN LASTPOS("/",PgpPath) = Laenge THEN NOP
- WHEN LASTPOS(":",PgpPath) = Laenge THEN NOP
- OTHERWISE
- PgpPath = PgPPath||"/"
- END
- CALL _InitIDList
-
- /*
- ** Beschreibung der Applikation
- */
- appname = 'PGPTrxGui'
- applongname = 'PGPTrxGui - ©1995 by Nils Görs'
- appinfo = 'Graphical-User-Interface for PrettyGoodPrivacy(tm)'
- appversion = '1.1'
- apprelease = '2'
- appdate = '9.11.95'
- HelpBool = 0
-
- _maintags:
- windowtags = WindowID(1),
- PubScreenName(PubScreen),
- WindowTitle(appname appversion),
- QuickHelpOn(HelpBool),
- BeginMenu("Projekt"),
- MenuItem("?_Über",100) ItemBarlabel,
- MenuItemC("H_Hilfe",103),
- MenuItem("W_PubScreen wechseln",102),
- MenuItem("I_Ikonifizieren",104) ItemBarlabel,
- MenuItem("Q_Beenden",101),
- 'VertGroupA Space',
- 'HorizGroupA Space',
- 'TROB_FrameBox TRFB_FRAMING',
- 'VertGroupA',
- Button("Key _generieren",1),
- 'TRDO_QuickHelpString "Generieren Sie sich ihren eigenen Sicherheitsschlüssel."',
- Button("_Beglaubigungen pr.",2),
- 'TRDO_QuickHelpString "Überprüfen Sie bitte einmal ob Schlüsseldateien vom Besitzer beglaubigt sind."',
- Button("Key _editieren",3),
- 'TRDO_QuickHelpString "Neue UserID anhängen, Pass phrase ändern bzw. andere User einstufen."',
- Button("_Inhalt anzeigen",4),
- 'TRDO_QuickHelpString "Zeigt an welche öffentlichen Schlüssel sich in Ihrem pubring befinden."',
- Button("_Fingerprint anz.",5),
- 'TRDO_QuickHelpString "Zeigt die Fingerprints der Anwender an."',
- Button("_ASCII-Key sp.",6),
- 'TRDO_QuickHelpString "Speichert einen öffentlichen Schlüssel im ASCII-Format ab."',
- 'EndGroup',
- ,
- 'SpaceS VertSeparator SpaceS',
- ,
- 'VertGroupA',
- 'TROB_FrameBox TRFB_FRAMING',
- 'VertGroupA',
- Button("Key _speichern",7),
- 'TRDO_QuickHelpString "Speichert einen öffentlichen Schlüssel im Binärformat ab."',
- Button("Key _hinzufügen",8),
- 'TRDO_QuickHelpString "Nimmt einen öffentlichen Schlüssel, aus einer Datei, in ihren pubring auf."',
- Button("Key _löschen",9),
- 'TRDO_QuickHelpString "Entfernt einen öffentlichen Schlüssel aus ihrem pubring."',
- Button("Key _unterschreiben",10),
- 'TRDO_QuickHelpString "Setzen Sie eine Unterschrift unter einen öffentlichen Schlüssel."',
- Button("Unterschrift e_ntf.",11),
- 'TRDO_QuickHelpString "Entfernen Sie eine Unterschrift von einem öffentlichen Schlüssel."',
- Button("Key _zurückziehen",12),
- 'TRDO_QuickHelpString "Erklären Sie einen Schlüssel für ungültig !"',
- 'EndGroup Space',
- 'EndGroup Space',
- 'EndGroup',
- ,
- 'HorizGroupA Space',
- 'TROB_FrameBox TRFB_FRAMING',
- 'VertGroupA',
- Button("Datei _verschlüsseln",13),
- 'TRDO_QuickHelpString "Verschlüsselt eine Datei Ihrer Wahl."',
- Button("_Dat. entschlüsseln/Unterschrift prüfen",14),
- 'TRDO_QuickHelpString "Entschlüsselt eine Datei für Sie und überprüft diese auf korrektheit."',
- Button("Datei un_terschreiben",15),
- 'TRDO_QuickHelpString "Setzt eine Unterschrift unter eine Datei."',
- 'SpaceS',
- 'LineArray',
- 'BeginLine',
- 'HorizGroupS Space EndGroup',
- CheckBox(20) 'TRDO_QuickHelpString "Erstellt eine seperate Unterschrift für eine Datei."',
- 'Space',
- Text3("Abgetrennte Unte_rschrift") 'TRAT_ID 20',
- 'HorizGroupS Space EndGroup',
- 'EndLine',
- 'SpaceS',
- 'BeginLine',
- 'HorizGroupS Space EndGroup',
- CheckBox(21),
- 'TRDO_QuickHelpString "Erzeugt eine Datei im ASCII-Format (z.b. zum E-Mail Versand)."',
- 'Space',
- Text3("RADIX-_64 Format") 'TRAT_ID 21',
- 'HorizGroupS Space EndGroup',
- 'EndLine',
- 'SpaceS',
- 'BeginLine',
- 'HorizGroupS Space EndGroup',
- CheckBox(22),
- 'TRDO_QuickHelpString "Nachrichten im Klartext mit ASCII-Unterschrift."',
- 'Space',
- Text3("Nachricht in Klarte_xt mit Unterschrift") 'TRAT_ID 22',
- 'HorizGroupS Space EndGroup',
- 'EndLine',
- 'EndArray',
- 'Space',
- 'EndGroup Space',
- 'EndGroup Space',
- 'EndGroup Space EndProject',
-
- /*
- ** Unterbrechungssignale
- */
-
- SIGNAL ON break_c
- /*SIGNAL ON failure*/
- SIGNAL ON halt
- SIGNAL ON ioerr
- SIGNAL ON syntax
-
- app = TR_CREATEAPP('TRCA_Name' '"'appname'"',
- 'TRCA_LongName' '"'applongname'"',
- 'TRCA_Info' '"'appinfo'"',
- 'TRCA_Version' '"'appversion'"',
- 'TRCA_Release' '"'apprelease'"',
- 'TRCA_Date' '"'appdate'"',
- 'TAG_END')
-
-
- IF app ~= '00000000'x THEN DO
-
- window = TR_OPENPROJECT(app,windowtags)
- WindowProject=C2D(window) /* zum Locken des Fensters bei Über */
-
- IF window ~= '00000000'x THEN DO
- ende = 0
-
- CheckBox1 = 0
- CheckBox2 = 0
- CheckBox3 = 0
-
- DO WHILE ende ~= 1
- CALL TR_WAIT(app,'')
-
- DO WHILE TR_HANDLEMSG(app,'event')
-
- /******************
- *** CLOSEGADGET ***
- *******************/
- IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
- IF event.trm_project = dummywindow THEN
- CALL _uniconify
- IF event.trm_project = window THEN DO
- nummer = TR_GETATTRIBUTE(window,10,'TRAT_Value')+1
- ende = 1
- END
- END
-
- /*************
- *** GADGET ***
- **************/
- IF event.trm_class = 'TRMS_ACTION' THEN DO
- SELECT
- WHEN event.trm_id = 1 THEN CALL _KeyGenerieren
- WHEN event.trm_id = 2 THEN CALL _BeglaubigungUeberpruefen
- WHEN event.trm_id = 3 THEN CALL _KeyEditieren
- WHEN event.trm_id = 4 THEN CALL _InhaltAnzeigen
- WHEN event.trm_id = 5 THEN CALL _FingerPrintAnzeigen
- WHEN event.trm_id = 6 THEN CALL _ASCIIKeySpeichern
- WHEN event.trm_id = 7 THEN CALL _KeySpeichern
- WHEN event.trm_id = 8 THEN CALL _KeyHinzufuegen
- WHEN event.trm_id = 9 THEN CALL _Keyloeschen
- WHEN event.trm_id = 10 THEN CALL _KeyUnterschreiben
- WHEN event.trm_id = 11 THEN CALL _UnterschriftEntfernen
- WHEN event.trm_id = 12 THEN CALL _KeyZurueckziehen
- WHEN event.trm_id = 13 THEN CALL _DateiVerschluesseln
- WHEN event.trm_id = 14 THEN CALL _DateiEntschluesseln
- WHEN event.trm_id = 15 THEN CALL _DateiUnterschreiben
- WHEN event.trm_id = 100 THEN CALL about
- WHEN event.trm_id = 102 THEN CALL _NewPubScreen
- WHEN event.trm_id = 104 THEN CALL _Iconify
- WHEN event.trm_id = 101 THEN DO
- Erg=rtezrequest("Wirklich beenden?", "_Ja|_Nein",,"rt_pubscrname="PubScreen)
- IF Erg == 1 THEN ende = 1
- END
- OTHERWISE
- NOP
- END
- END
-
- /***************
- *** CHECKBOX ***
- ****************/
- IF event.trm_class = 'TRMS_NEWVALUE' THEN DO
- SELECT
- WHEN event.trm_id = 103 THEN DO
- nummer = TR_GETATTRIBUTE(window,103,'TRAT_VALUE')
- CALL TR_SETATTRIBUTE(window,0,'TRWI_QuickHelp',nummer)
- END
- WHEN event.trm_id = 20 THEN
- CheckBox1=event.trm_data /*Abgetrennte Unterschrift?*/
- WHEN event.trm_id = 21 THEN
- CheckBox2=event.trm_data /*Radix64-Format*/
- WHEN event.trm_id = 22 THEN
- CheckBox3=event.trm_data /*Text in Klartext*/
- OTHERWISE NOP
- END
- IF CheckBox1+CheckBox2+Checkbox3 ~= 0 THEN
- CALL TR_SETATTRIBUTE(window,14,'TRAT_Disabled',1)
- IF CheckBox1+CheckBox2+Checkbox3 == 0 THEN
- CALL TR_SETATTRIBUTE(window,14,'TRAT_Disabled',0)
-
- END
- END
- END
- CALL TR_CLOSEPROJECT(window)
- END
- CALL TR_DELETEAPP(app)
- END
- EXIT(0)
-
- /*******************************************
- *** Unterroutinen für die PGP-Ausführung ***
- ********************************************/
- _KeyGenerieren:
- ADDRESS COMMAND PGP.exe '-kg'
- RETURN
- /*
- ***
- */
- _BeglaubigungUeberpruefen:
- HeadLine = "Welche ID's beglaubigen?"
- NotMore = 0 /* Gadget unghosten */
- CALL _ListViewUserListe
- SELECT
- WHEN ende = 1 THEN DO
- ende = 0
- RETURN
- END
- WHEN ende = 2 THEN
- ADDRESS COMMAND PGP.exe '-kc "'pgpuserliste.lnummer'" >'PgPOut||2
- WHEN ende = 3 THEN
- ADDRESS COMMAND PGP.exe '-kc >'PgPOut||2
- OTHERWISE
- NOP
- END
- ende = 0
- IF RXTR_READFILE(PgpOut||2,TemporaryList) == 0 THEN EXIT(5)
- ADDRESS COMMAND 'Delete' pgpout||2 'QUIET'
- CALL _NormalListView
- RETURN
- /*
- ***
- */
- _KeyEditieren:
- HeadLine = "Welche User-ID editieren?"
- NotMore = 1 /* Gadget ghosten */
- CALL _ListViewUserListe
- SELECT
- WHEN ende = 1 THEN nop
- WHEN ende = 2 THEN
- ADDRESS COMMAND PGP.exe '-ke "'pgpuserliste.lnummer'"'
- OTHERWISE
- NOP
- END
- ende = 0
- RETURN
- /*
- ***
- */
- _InhaltAnzeigen:
- ADDRESS COMMAND PGP.exe '-kvv >'PgpOut||2
- IF RXTR_READFILE(PgpOut||2,TemporaryList) == 0 THEN EXIT(5)
- ADDRESS COMMAND 'Delete' pgpout||2 'QUIET'
- CALL _NormalListView
- RETURN
- /*
- ***
- */
- _FingerPrintAnzeigen:
- HeadLine = "Welche Fingerprints anzeigen?"
- NotMore = 0 /* Gadget unghosten */
- CALL _ListViewUserListe
- SELECT
- WHEN ende = 1 THEN DO
- ende = 0
- RETURN
- END
- WHEN ende = 2 THEN
- ADDRESS COMMAND PGP.exe '-kvc "'pgpuserliste.lnummer'" >'PgPOut||2
- WHEN ende = 3 THEN
- ADDRESS COMMAND PGP.exe '-kvc >'PgpOut||2
- OTHERWISE
- NOP
- END
- IF READFILE(PgpOut||2,TemporaryList) == 0 THEN EXIT(5)
- ADDRESS COMMAND 'Delete' pgpout||2 'QUIET'
- CALL _NormalListView
- ende = 0
- RETURN
- /*
- ***
- */
- _ASCIIKeySpeichern:
- HeadLine = "Welchen Key im ASCII Modus speichern?"
- NotMore = 1 /* Gadget ghosten */
- CALL _ListViewUserListe
- SELECT
- WHEN ende = 1 THEN nop
- WHEN ende = 2 THEN
- ADDRESS COMMAND PGP.exe '-kxa "'pgpuserliste.lnummer'" "'PGPPath||pgpuserliste.lnummer'"'
- OTHERWISE
- NOP
- END
- ende = 0
- RETURN
- /*
- ***
- */
- _KeySpeichern:
- HeadLine = "Welchen Key speichern?"
- NotMore = 1 /* Gadget ghosten */
- CALL _ListViewUserListe
- SELECT
- WHEN ende = 1 THEN nop
- WHEN ende = 2 THEN
- ADDRESS COMMAND PGP.exe '-kx "'pgpuserliste.lnummer'" "'PGPPath||pgpuserliste.lnummer'"'
- OTHERWISE
- NOP
- END
- ende = 0
- RETURN
- /*
- ***
- */
- _KeyHinzufuegen:
- CALL rtfilerequest(,,"Bitte Datei(en) mit neuem(n) Key(s) auswählen",,"rt_pubscrname="PubScreen "rtfi_flags=freqf_multiselect",files)
- IF files == 1 THEN DO
- do i = 1 to files.count
- ADDRESS COMMAND Pgp.exe '-ka' files.i
- END
- END
- DROP files
- RETURN
- /*
- ***
- */
- _Keyloeschen:
- HeadLine = "Welche User-ID löschen?"
- NotMore = 1 /* Gadget ghosten */
- CALL _ListViewUserListe
- SELECT
- WHEN ende = 1 THEN nop
- WHEN ende = 2 THEN DO
- ADDRESS COMMAND PGP.exe '-kr "'pgpuserliste.lnummer'"'
- IF (RC) = 0 THEN CALL _InitIDList
- END
- OTHERWISE
- NOP
- END
- ende = 0
- RETURN
- /*
- ***
- */
- _KeyUnterschreiben:
- HeadLine = "Welchen Key unterschreiben?"
- NotMore = 1 /* Gadget ghosten */
- CALL _ListViewUserListe
- SELECT
- WHEN ende = 1 THEN nop
- WHEN ende = 2 THEN
- ADDRESS COMMAND PGP.exe '-ks "'pgpuserliste.lnummer'"'
- OTHERWISE
- NOP
- END
- ende = 0
- RETURN
- /*
- ***
- */
- _UnterschriftEntfernen:
- HeadLine = "Von welcher ID die Unterschrift entfernen?"
- NotMore = 1 /* Gadget ghosten */
- CALL _ListViewUserListe
- SELECT
- WHEN ende = 1 THEN nop
- WHEN ende = 2 THEN
- ADDRESS COMMAND PGP.exe '-krs "'pgpuserliste.lnummer'"'
- OTHERWISE
- NOP
- END
- ende = 0
- RETURN
- /*
- ***
- */
- _Keyzurueckziehen:
- HeadLine = "Von welcher ID die Unterschrift entfernen?"
- NotMore = 1 /* Gadget ghosten */
- CALL _ListViewUserListe
- SELECT
- WHEN ende = 1 THEN nop
- WHEN ende = 2 THEN
- ADDRESS COMMAND PGP.exe '-kd "'pgpuserliste.lnummer'"'
- OTHERWISE
- NOP
- END
- ende = 0
- RETURN
- /*
- ***
- */
- _Dateiverschluesseln:
- File=rtfilerequest(,,"Bitte Datei(en) mit neuem(n) Key(s) auswählen",,"rt_pubscrname="PubScreen)
- IF file ~= "" THEN DO
- HeadLine = "Welche Datei kodieren?"
- NotMore = 1 /* Gadget ghosten */
- CALL _ListViewUserListe
- template = '-e'
- IF CheckBox1 == 1 THEN template = template||"b" /*Abgetrennte Unterschrift*/
- IF CheckBox2 == 1 THEN template = template||"a" /*Radix64-Format*/
- IF CheckBox3 == 1 THEN template = template||" +clearsig=on" /*in Klartext*/
- SELECT
- WHEN ende = 1 THEN nop
- WHEN ende = 2 THEN
- ADDRESS COMMAND PGP.exe template file '"'pgpuserliste.lnummer'"'
- OTHERWISE
- NOP
- END
- ende = 0
- END
- DROP file
- DROP template
- RETURN
- /*
- ***
- */
- _Dateientschluesseln:
- File=rtfilerequest(,,"Bitte kodierte Datei auswählen",,"rt_pubscrname="PubScreen)
- IF file ~= "" THEN
- ADDRESS COMMAND PGP.exe file
- DROP file
- RETURN
- /*
- ***
- */
- _DateiUnterschreiben:
- File=rtfilerequest(,,"Bitte kodierte Datei auswählen",,"rt_pubscrname="PubScreen)
- IF file ~= "" THEN DO
- template = '-s'
- IF CheckBox1 == 1 THEN template = template||"b" /*Abgetrennte Unterschrift*/
- IF CheckBox2 == 1 THEN template = template||"a" /*Radix64-Format*/
- IF CheckBox3 == 1 THEN template = template||" +clearsig=on" /*in Klartext*/
- ADDRESS COMMAND PGP.exe template file
- END
- DROP file
- DROP template
- RETURN
-
- /******************************
- *** Liste mit ID's besorgen ***
- *******************************/
- _InitIDList:
- ADDRESS COMMAND 'pgp >'PgpOut '-kv'
- IF RXTR_READFILE(PgpOut,PgpUserListebak) == 0 THEN EXIT(5)
- reeD=WORDINDEX(PgpUserListebak.4,4)
- j = 1
- do i = 4 to PgpUserListebak.0-1
- UserID=SUBSTR(PgpUserListebak.i,reeD)
- PgpUserListe.j = UserID
- PgpUserListe.0 = j
- j = j+1
- END
- ADDRESS COMMAND 'delete' pgpout 'QUIET'
- RETURN
-
- /******************************
- *** ListView zum auswählen! ***
- *******************************/
- _ListViewUserListe:
- RemoveListTags = WindowID(2),
- WindowPosition('TRWP_MOUSEPOINTER'),
- WindowFlags('TRWF_NOCLOSEGADGET'),
- WindowTitle(HeadLine),
- PubScreenName(Pubscreen),
- 'VertGroupA',
- 'Space',
- 'HorizGroupA',
- 'Space',
- ListSS('pgpuserliste',301,0,0),
- 'Space',
- 'EndGroup',
- 'Space',
- 'HorizSeparator',
- 'Space',
- 'HorizGroupA',
- 'Space',
- ButtonRE('_Eintrag',304),
- Button('_Keinen speziellen',302),
- Button('_Abbrechen',303),
- 'Space',
- 'EndGroup Space EndGroup EndGroup EndProject'
-
- ListViewUserListe = TR_OPENPROJECT(app,Removelisttags)
-
- IF ListViewUserListe ~= '00000000'x THEN DO
- CALL TR_LOCKPROJECT(window)
-
- IF NotMore == 1 THEN
- CALL TR_SETATTRIBUTE(ListViewUserListe,302,'TRAT_Disabled',1)
-
- ende = 0
- DO WHILE ende = 0
- DO WHILE TR_HANDLEMSG(app,'event2')
-
- /* Alle Gadget */
- IF event2.trm_id = 302 THEN DO
- ende = 3
- END
-
- /* Cancel Gadget */
- IF event2.trm_id = 303 THEN ende = 1
-
- /* Einen Eintrag */
- IF event2.trm_id = 304 THEN DO
- LNummer=TR_GETATTRIBUTE(ListViewUserListe,301,'TRAT_Value')+1
- ende = 2
- END
-
- IF event2.trm_class = 'TRMS_NEWVALUE' THEN DO
- IF event2.trm_id = 301 THEN DO
- IF BITAND(D2X(event2.trm_qualifier),'0200'x) = '0200'x THEN DO
- LNummer=TR_GETATTRIBUTE(ListViewUserListe,301,'TRAT_Value')+1
- ende = 2
- END
- END
- END
-
- END
- END
- CALL TR_UNLOCKPROJECT(window)
- CALL TR_CLOSEPROJECT(ListViewUserListe)
- END
- RETURN
-
- _NormalListView:
- RemoveListTags = WindowID(3),
- WindowPosition('TRWP_MOUSEPOINTER'),
- WindowTitle('Inhalt'),
- PubScreenName(Pubscreen),
- 'VertGroupAC',
- 'Space',
- 'HorizGroupAC',
- 'Space',
- ListRO('TemporaryList',301,0),
- 'EndGroup',
- 'HorizSeparator SpaceS',
- CenteredButtonR('Abbrechen',302),
- 'Space EndGroup Space EndProject'
-
- NormalListView = TR_OPENPROJECT(app,Removelisttags)
-
- IF NormalListView ~= '00000000'x THEN DO
- CALL TR_LOCKPROJECT(window)
-
- ende = 0
- DO WHILE ende ~= 1
- DO WHILE TR_HANDLEMSG(app,'event2')
- /* Cancel Gadget */
- IF event2.trm_id = 302 THEN ende = 1
- IF event2.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
- ende = 1
- END
-
- END
- END
- CALL TR_UNLOCKPROJECT(window)
- CALL TR_CLOSEPROJECT(NormalListView)
- END
- ende = 0
- RETURN
-
- /*******************************************************************************
- ** Info über das Programm anzeigen
- *******************************************************************************/
- about:
- CALL TR_AUTOREQUEST(app,window,PubScreenName(PubScreen),
- BeginRequester('Über','TRWP_CENTERDISPLAY'),
- 'VertGroupA',
- 'Space',
- CenteredText3(appname appversion '('||appdate||') (C) 1995 by Nils Görs <N.Goers@Art-Line.Art-Line.de>'),
- 'SpaceS',
- CenteredText(appinfo),
- 'Space',
- 'HorizSeparator',
- 'Space',
- CenteredText3('Dieses Programm verwendet das 'Triton GUI creation system''),
- 'SpaceS',
- CenteredText("'Triton' ist (C) by Stefan Zeiger <s.zeiger@laren.rhein-main.de>"),
- 'Space',
- 'HorizSeparator',
- 'Space',
- CenteredText3("Dieses Programm verwendet die 'tritonrexx.library'"),
- 'SpaceS',
- 'HorizGroupSC',
- 'Space',
- TextN("'tritonrexx.library' ist (C) by Jürgen Kohrmeyer <j_kohrmeyer@wilam.north.de>") 'TRAT_Flags TRTX_NOUNDERSCORE',
- 'Space',
- 'EndGroup',
- 'Space',
- 'EndGroup',
- 'BeginRequesterGads',
- CenteredButtonRE('Danke',10000),
- 'EndRequester')
- RETURN
-
- /*****************************************************************
- *** Routine, die das GUI auf einem neuen PubScreen öffnen läßt ***
- ******************************************************************/
- _NewPubScreen:
- IF PUBSCREENLIST('ScreenList') == 0 THEN RETURN
-
- ScreenListTags = WindowID(4),
- WindowPosition('TRWP_MOUSEPOINTER'),
- WindowTitle('PubScreen wechseln'),
- WindowFlags('TRWF_NOCLOSEGADGET|TRWF_NOESCCLOSE'),
- PubScreenName(Pubscreen),
- 'VertGroupA',
- 'Space',
- 'HorizGroupA',
- 'Space',
- ListSel('screenlist',301,0),
- 'Space',
- 'EndGroup',
- 'Space',
- 'HorizSeparator',
- 'Space',
- 'HorizGroupA',
- 'Space',
- ButtonRE('Abbrechen',302),
- 'Space',
- 'EndGroup Space EndGroup EndGroup EndProject'
-
- PubScreenProject = TR_OPENPROJECT(app,Screenlisttags)
-
- IF PubScreenProject ~= '00000000'x THEN DO
- CALL TR_LOCKPROJECT(window)
-
- DO WHILE ende ~= 1
- DO WHILE TR_HANDLEMSG(app,'event2')
- IF event2.trm_class = 'TRMS_ACTION' THEN ende = 1 /* Cancel Gadget */
-
- IF event2.trm_class = 'TRMS_NEWVALUE' THEN DO
- nummer = TR_GETATTRIBUTE(PubScreenProject,301,'TRAT_Value')+1
- IF PubScreen ~= Screenlist.nummer THEN DO
- PubScreen = ScreenList.nummer
- ScreenOutPut = 'CON:'LeftBorder'/'TopBorder'/'OutPutWidth'/'OutPutHeight'/Closegadget zum Beenden/SCREEN' PubScreen'/AUTO/CLOSE'
- CALL TR_UNLOCKPROJECT(window)
- CALL TR_CLOSEPROJECT(PubScreenProject)
- CALL TR_CLOSEPROJECT(window)
- CALL TR_DELETEAPP(app)
- CALL _maintags
- END
- ELSE ende = 1
- END
- END
- END
-
- ende = 0
- CALL TR_UNLOCKPROJECT(window)
- CALL TR_CLOSEPROJECT(PubScreenProject)
- END
- RETURN
-
- _Iconify:
- iwinsize.trd_left=10
- iwinsize.trd_top=10
- iwinsize.trd_width=20
- iwinsize.trd_height=10
- iwinsize.trd_left2=10
- iwinsize.trd_top2=10
- iwinsize.trd_width2=10
- iwinsize.trd_height2=20
- iwinsize.trd_zoomed=30
-
- SleepWin = WindowID(1000),
- PubScreenName(PubScreen),
- WindowTitle(appname appversion),
- WindowDimensions(iwinsize),
- 'EndProject'
-
- ok=tr_closeproject(window)
- window = '00000000'x
- dummywindow = TR_OPENPROJECT(app,SleepWin)
- return
-
- _uniconify:
- ok=tr_closeproject(dummywindow)
- dummywindow = '00000000'x
-
- prefs.iwinx=iwinsize.trd_left
- prefs.iwiny=iwinsize.trd_top
- prefs.iwinw=iwinsize.trd_width
- prefs.iwinh=iwinsize.trd_height
- prefs.iwinx2=iwinsize.trd_left2
- prefs.iwiny2=iwinsize.trd_top2
- prefs.iwinw2=iwinsize.trd_width2
- prefs.iwinh2=iwinsize.trd_height2
- prefs.iwinz=iwinsize.trd_zoomed
-
- window = TR_OPENPROJECT(app,windowtags)
- WindowProject=C2D(window) /* zum Locken des Fensters bei About */
-
- return
-
- /*******************************************************************************
- ** Routine, die bei einer Unterbrechung des Scripts aufgerufen wird
- *******************************************************************************/
- break_c:
- failure:
- halt:
- ioerr:
- syntax:
- SAY '+++ Fehler' rc 'in Zeile' sigl '-' ERRORTEXT(rc)
- SAY SOURCELINE(sigl)
-
- IF app ~= '00000000'x THEN
- CALL TR_DELETEAPP(app)
-
- EXIT(10)
- /*EOS*/
-